A video scaler is a device for converting video signals from one size or resolution to another size or resolution. Converting from a low resolution (e.g., standard definition) to one of higher resolution (e.g., high definition) is known as “up-scaling” or “up-converting” a video signal. Converting from a high resolution to one of lower resolution is known as “downscaling” or “down-converting” a video signal.
Video scaling involving lossless up-scaling and down-scaling seems to have significant potential for use in various practical applications. Such video scaling permits the up-scaling of an image or a video sequence while discarding the lower resolution version without the need to store the lower resolution version. This lossless up-scaling and down-scaling is also referred to as a reversible process.
One prior art approach addressing the problem of reversibility assures a perfect reconstruction going from low to high resolution and then back to the lower resolution. This prior art approach relies on the concept of adaptive update lifting scheme. In the adaptive update lifting scheme, one poly-phase component of the original image is adaptively updated and then the remaining components of the output image are computed by means of a gradient-driven interpolation.
However, this scheme suffers from deficiencies including, for example, the following:                1. One deficiency of the above adaptive update lifting scheme relates to quality. The quality of this method is claimed to be comparable to that of the bilinear method, which is not a state-of-the-art reference. There are many algorithms that have improved quality over the bilinear method such as, for example, the bi-cubic method.        2. Another deficiency of the above adaptive update lifting scheme relates to computational cost. The scheme requires two gradient images to be computed and interpolated. Also, adaptive lifting steps are computed for a fraction of the pixels. These steps are computationally expensive.        3. Yet another deficiency of the above adaptive update lifting scheme relates to gradient computation. The gradient images are interpolated with the bilinear method. Relying on low quality filters for these intermediate results limits the quality of the final scaled image.        
Bi-cubic interpolation has been used for scaling. The one-dimensional (1-D) version (the so-called cubic interpolation) fits a 1-D cubic polynomial to 4 data points. Turning to FIG. 1, an example of cubic interpolation is indicated generally by the reference numeral 100. Four pixels (indicated generally by circles) are used to interpolate a new pixel (indicated by the cross) in-between. The grid is regular (that is, there is the same distance between all of the four pixels) and the interpolated point is exactly in the middle. In this case, the cubic filter weights, denoted by f, are 9/16 for the two closest pixels and − 1/16 for the two other pixels. Therefore, the interpolation filter can be written as follows:
  f  =            (                                    -            1                    16                ⁢                  9          16                ⁢                  9          16                ⁢                              -            1                    16                    )        .  
The cubic polynomial interpolation is also possible for non-regular grids. Also, the pixel to interpolate may be at any position, not only in the middle of the two central pixels. Turning to FIG. 2, another example of cubic interpolation is indicated generally by the reference numeral 200. In the example of FIG. 2, the four pixels (indicated generally by the circles) can be used to interpolate a new pixel (indicated by the cross) which is shifted to the left, not exactly in the middle.
Bi-cubic interpolation is the separable two-dimensional (2-D) version of the cubic. First, the 1-D cubic polynomial is used to interpolate in the horizontal direction for all the rows, and then the 1-D interpolation is done in the vertical direction for all the columns. Note that it is also possible to first filter the vertical direction and then the horizontal directions, as the results are similar for both approaches.
The bi-cubic interpolation provides good quality. The drawback is that, in general, the original data is not exactly recovered when an up-scaling is followed by a down-scaling, even in the case when no quantization is applied.
Quantization is required in finite-precision arithmetic and for efficient data storage. If quantization is introduced in the bi-cubic scaling, then the possibility to recover the original data becomes much more difficult.
Currently, no video scaling schemes exist in finite arithmetic (integer-to-integer) that are able to up-scale in a ratio of 3/2 with bi-cubic quality, and then down-scale to a ratio of 2/3 in order to recover the original data.